উইন্ডোজ ফর্ম হল সি# এ GUI (Graphical User Interface) অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত একটি ফ্রেমওয়ার্ক, যা .NET ফ্রেমওয়ার্কের অংশ। এটি ড্র্যাগ-এন্ড-ড্রপ ফিচারের মাধ্যমে বিভিন্ন UI উপাদান যেমন বোতাম, টেক্সটবক্স, লেবেল ইত্যাদি সহজেই যুক্ত করতে সাহায্য করে। GUI প্রোগ্রামিংয়ে, এই উইন্ডোজ ফর্ম ব্যবহার করে ইন্টারঅ্যাকটিভ অ্যাপ্লিকেশন তৈরি করা যায় যা ব্যবহারকারীর ইন্টারঅ্যাকশন গ্রহণ করে এবং তার ভিত্তিতে ফলাফল প্রদর্শন করে।
Visual Studio ব্যবহার করে উইন্ডোজ ফর্ম অ্যাপ্লিকেশন তৈরি করা খুবই সহজ। নিচে ধাপে ধাপে একটি উইন্ডোজ ফর্ম অ্যাপ্লিকেশন তৈরি করার পদ্ধতি বর্ণনা করা হলো:
নতুন প্রজেক্ট তৈরি করুন:
Form Designer ব্যবহার করুন:
Form1.cs
নামে একটি ফাইল দেখতে পাবেন, যা আপনার মেইন উইন্ডো। এখানে UI উপাদান ড্র্যাগ করে যোগ করা যাবে।Toolbox থেকে কন্ট্রোল যোগ করুন:
ইভেন্ট হ্যান্ডলার যুক্ত করা:
Button
এর Click
ইভেন্টে নির্দিষ্ট কোড যুক্ত করা যায়।নিচে একটি সহজ উইন্ডোজ ফর্ম অ্যাপ্লিকেশনের উদাহরণ দেওয়া হলো, যেখানে একটি টেক্সটবক্স এবং একটি বাটন রয়েছে। ব্যবহারকারী টেক্সটবক্সে কিছু লিখবে এবং বাটনে ক্লিক করলে সেই টেক্সট মেসেজবক্সে প্রদর্শিত হবে।
Form Design:
Text
প্রোপার্টি পরিবর্তন করে "Show Message" দিন।কোড লেখা:
Button
এর Click
ইভেন্ট তৈরি হবে। সেখানে নিচের কোড লিখুন:using System;
using System.Windows.Forms;
namespace WindowsFormsApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// টেক্সটবক্স থেকে ইনপুট পড়া
string message = textBox1.Text;
// মেসেজবক্সে প্রদর্শন
MessageBox.Show("You entered: " + message);
}
}
}
textBox1
এর Text
প্রোপার্টির মাধ্যমে ইনপুট নেওয়া হয়েছে।MessageBox
ব্যবহার করে মেসেজ প্রদর্শন করা হয়েছে।উইন্ডোজ ফর্মে বিভিন্ন ধরনের কন্ট্রোল আছে, যা ব্যবহারকারীর সাথে ইন্টারঅ্যাকশন তৈরি করতে ব্যবহৃত হয়। নিচে কয়েকটি গুরুত্বপূর্ণ কন্ট্রোল এবং তাদের ব্যবহার দেওয়া হলো:
Label: টেক্সট প্রদর্শনের জন্য ব্যবহৃত হয়।
label1.Text = "Enter your name:";
TextBox: ব্যবহারকারীর ইনপুট গ্রহণের জন্য ব্যবহৃত হয়।
string name = textBox1.Text;
Button: ব্যবহারকারী ইন্টারঅ্যাকশনের জন্য বোতাম।
Click
ইভেন্টের মাধ্যমে বাটন ক্লিক হ্যান্ডল করা যায়।CheckBox: নির্বাচনের জন্য ব্যবহৃত হয়।
bool isChecked = checkBox1.Checked;
ComboBox: ড্রপডাউন তালিকা প্রদর্শনের জন্য ব্যবহৃত হয়।
comboBox1.Items.Add("Option 1");
ListBox: একাধিক আইটেম প্রদর্শন এবং নির্বাচন করতে ব্যবহৃত হয়।
listBox1.Items.Add("Item 1");
একটি অ্যাপ্লিকেশন প্রায়শই একাধিক ফর্মের সমন্বয়ে তৈরি হয়। একটি ফর্ম থেকে অন্য ফর্মে যাওয়ার জন্য নতুন ফর্মের অবজেক্ট তৈরি করে Show()
মেথড ব্যবহার করা হয়।
Form2 form2 = new Form2();
form2.Show();
GUI প্রোগ্রামিংয়ে ইভেন্ট হ্যান্ডলিং একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, কারণ এটি ব্যবহারকারীর ইন্টারঅ্যাকশনের জন্য নির্দিষ্ট অ্যাকশন সম্পাদন করে। উদাহরণস্বরূপ, Button
এর Click
ইভেন্টে ক্লিক করার সময় কী ঘটবে তা নির্ধারণ করা যায়।
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Button clicked!");
}
এখানে, যখন ব্যবহারকারী button1
এ ক্লিক করবে, তখন একটি মেসেজবক্স প্রদর্শিত হবে।
MessageBox হলো উইন্ডোজ ফর্মে একটি পপ-আপ ডায়ালগ বক্স যা মেসেজ প্রদর্শনের জন্য ব্যবহৃত হয়।
MessageBox.Show("This is a message.");
MessageBoxButtons এবং MessageBoxIcon দিয়ে মেসেজবক্সে বোতাম এবং আইকন যুক্ত করা যায়।
MessageBox.Show("Do you want to continue?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
উইন্ডোজ ফর্মে মাল্টিথ্রেডিং ব্যবহার করে পটভূমিতে কাজ করা যায়, যেমন বড় কাজের জন্য BackgroundWorker ক্লাস ব্যবহার করা হয়। এটি ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে সহায়ক।
using System.ComponentModel;
private BackgroundWorker backgroundWorker;
public Form1()
{
InitializeComponent();
backgroundWorker = new BackgroundWorker();
backgroundWorker.DoWork += BackgroundWorker_DoWork;
}
private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
// পটভূমিতে কাজ করা
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Working...");
Thread.Sleep(1000); // এক সেকেন্ড অপেক্ষা
}
}
উইন্ডোজ ফর্ম এবং GUI প্রোগ্রামিংয়ের মাধ্যমে ইন্টারঅ্যাকটিভ, সহজ, এবং আকর্ষণীয় অ্যাপ্লিকেশন তৈরি করা যায়, যা ব্যবহারকারীর সাথে সরাসরি যোগাযোগ এবং সাড়া প্রদান করতে সক্ষম।
উইন্ডোজ ফর্ম অ্যাপ্লিকেশন সি# ব্যবহার করে GUI (Graphical User Interface) ভিত্তিক ডেস্কটপ অ্যাপ্লিকেশন তৈরি করার একটি সহজ এবং জনপ্রিয় পদ্ধতি। এটি সাধারণত ব্যবসায়িক সফটওয়্যার, ডেটাবেজ অ্যাপ্লিকেশন এবং অন্যান্য ডেক্সটপ অ্যাপ তৈরি করতে ব্যবহৃত হয়।
১. Visual Studio: উইন্ডোজ ফর্ম অ্যাপ্লিকেশন তৈরির জন্য Visual Studio একটি জনপ্রিয় IDE। এখানে ড্র্যাগ-এন্ড-ড্রপ ইন্টারফেস ব্যবহার করে সহজেই ফর্ম তৈরি করা যায়। ২. .NET Framework: উইন্ডোজ ফর্ম অ্যাপ্লিকেশন .NET Framework এ ভিত্তিক, যা Visual Studio এর মধ্যে সাপোর্টেড।
১. Visual Studio ওপেন করুন। ২. File > New > Project এ যান। ৩. Windows Forms App (.NET Framework) নির্বাচন করুন এবং Next ক্লিক করুন। ৪. প্রজেক্টের জন্য নাম লিখুন এবং সংরক্ষণ ফোল্ডার নির্বাচন করুন। ৫. Create ক্লিক করুন।
এতে একটি নতুন উইন্ডোজ ফর্ম প্রজেক্ট তৈরি হবে এবং ডিফল্ট ফর্ম Form1
প্রদর্শিত হবে।
Visual Studio এর ড্র্যাগ-এন্ড-ড্রপ ইন্টারফেসের মাধ্যমে ফর্ম ডিজাইন করা খুবই সহজ। Form1
এর উপর বিভিন্ন UI উপাদান (যেমন, বাটন, লেবেল, টেক্সটবক্স) যুক্ত করতে পারেন।
১. Toolbox থেকে উপাদান (Controls) ড্র্যাগ করে ফর্মে রাখুন। ২. প্রতিটি উপাদানের Properties
উইন্ডোতে গিয়ে বৈশিষ্ট্য পরিবর্তন করতে পারেন (যেমন, নাম, টেক্সট, ফন্ট)। ৩. প্রতিটি উপাদানে ডাবল ক্লিক করলে তার ইভেন্ট হ্যান্ডলার তৈরি হবে যেখানে কোড লিখতে পারবেন।
ধরা যাক, আমরা একটি বেসিক ক্যালকুলেটর তৈরি করতে চাই, যেখানে দুটি সংখ্যা যোগফল প্রদর্শন করা হবে।
১. ফর্মে দুইটি TextBox যোগ করুন এবং নাম দিন textBox1 এবং textBox2। ২. একটি Button যোগ করুন এবং এর Text
প্রপার্টি Add
দিন, এবং নাম দিন buttonAdd। ৩. একটি Label যোগ করুন এবং নাম দিন labelResult।
buttonAdd এ ডাবল ক্লিক করুন এবং নিচের কোডটি লিখুন:
private void buttonAdd_Click(object sender, EventArgs e)
{
try
{
// TextBox থেকে সংখ্যা নিয়ে যোগফল বের করা
int number1 = int.Parse(textBox1.Text);
int number2 = int.Parse(textBox2.Text);
int result = number1 + number2;
// ফলাফল লেবেলে প্রদর্শন করা
labelResult.Text = "Result: " + result.ToString();
}
catch (Exception ex)
{
MessageBox.Show("Please enter valid numbers. " + ex.Message);
}
}
int.Parse
দিয়ে সংখ্যা হিসেবে কনভার্ট করা হয়েছে।result
নামক ভেরিয়েবলে সংরক্ষণ করা হয়েছে।try-catch
ব্লক ব্যবহার করে ইনপুটে ভুল থাকলে ব্যবহারকারীকে সতর্ক বার্তা দেওয়া হয়েছে।১. Start বা F5
প্রেস করে অ্যাপ্লিকেশন রান করুন। ২. TextBox এ দুইটি সংখ্যা লিখুন এবং Add বাটন প্রেস করুন। ৩. labelResult এ যোগফল প্রদর্শিত হবে।
এই উদাহরণে একটি সাইন ইন ফর্ম তৈরি করা হবে যেখানে ইউজারনেম ও পাসওয়ার্ড ইনপুট নিয়ে সাইন ইন করার একটি উদাহরণ দেওয়া হলো।
১. Label (UserName) এবং একটি TextBox যোগ করুন, নাম দিন textBoxUsername। ২. Label (Password) এবং একটি TextBox যোগ করুন, নাম দিন textBoxPassword এবং PasswordChar
প্রপার্টি *
সেট করুন যাতে পাসওয়ার্ড হাইড হয়। ৩. একটি Button যোগ করুন, নাম দিন buttonSignIn এবং Text
প্রপার্টি Sign In
সেট করুন। ৪. একটি Label যোগ করুন, নাম দিন labelMessage।
buttonSignIn এ ডাবল ক্লিক করে নিচের কোডটি লিখুন:
private void buttonSignIn_Click(object sender, EventArgs e)
{
string username = textBoxUsername.Text;
string password = textBoxPassword.Text;
// সাইন ইন ভেরিফিকেশন
if (username == "admin" && password == "1234")
{
labelMessage.Text = "Login successful!";
}
else
{
labelMessage.Text = "Invalid username or password.";
}
}
admin
এবং পাসওয়ার্ড 1234
হয়, তবে labelMessage
এ লগইন সফল বার্তা দেখাবে।labelMessage
এ ভুল বার্তা দেখানো হবে।এভাবে উইন্ডোজ ফর্ম অ্যাপ্লিকেশন তৈরি করা যায় এবং GUI ভিত্তিক প্রোগ্রাম তৈরি করে ব্যবহারকারীর জন্য ইন্টারঅ্যাকটিভ অ্যাপ্লিকেশন তৈরি করা সম্ভব।
সি# এ উইন্ডোজ ফর্ম অ্যাপ্লিকেশন এর বিভিন্ন ধরনের উইজেট বা কন্ট্রোল রয়েছে, যা GUI অ্যাপ্লিকেশন তৈরি করার সময় ব্যবহার করা হয়। প্রতিটি উইজেটের নিজস্ব ব্যবহার এবং কার্যক্ষমতা আছে। নিচে বিভিন্ন উইজেটের সাথে উদাহরণসহ ব্যাখ্যা করা হলো।
Button হলো এমন একটি কন্ট্রোল, যা ব্যবহারকারী ইন্টারফেসে ক্লিক করার জন্য ব্যবহৃত হয়। সাধারণত, ব্যবহারকারী যখন বোতামে ক্লিক করে, তখন একটি নির্দিষ্ট অ্যাকশন সম্পন্ন হয়।
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Button clicked!");
}
Text
প্রোপার্টি ব্যবহার করা হয়।Click
ইভেন্টে নির্ধারণ করা যায়।Label হলো এমন একটি কন্ট্রোল, যা ব্যবহারকারীর জন্য ইনফরমেশন বা নির্দেশনা প্রদর্শনের জন্য ব্যবহৃত হয়। এটি শুধুমাত্র টেক্সট প্রদর্শন করে এবং এর সাথে কোনো ইন্টারঅ্যাকশন থাকে না।
label1.Text = "Enter your name:";
Text
প্রোপার্টি ব্যবহার করা হয়।TextBox হলো এমন একটি কন্ট্রোল, যা ব্যবহারকারীর ইনপুট গ্রহণ করার জন্য ব্যবহৃত হয়। এটি সাধারণত ব্যবহারকারীকে কোনো টেক্সট টাইপ করার অনুমতি দেয়।
string userInput = textBox1.Text; // TextBox থেকে ইনপুট পড়া
textBox1.Text = "Default Text"; // TextBox এ টেক্সট সেট করা
Multiline
প্রোপার্টি true
করতে হয়।PasswordChar
সেট করা যায়।CheckBox হলো এমন একটি কন্ট্রোল, যা ব্যবহারকারীকে নির্দিষ্ট কোনো অপশন নির্বাচন বা বাতিল করার অনুমতি দেয়। এটি বুলিয়ান (Boolean) মান প্রদান করে।
bool isChecked = checkBox1.Checked; // চেক করা হয়েছে কিনা সেটি পড়া
Checked
, Unchecked
, এবং Indeterminate
মান প্রদান করতে পারে।RadioButton ব্যবহার করে ব্যবহারকারীকে একাধিক অপশনের মধ্যে একটি অপশন বাছাই করতে দেয়। সাধারণত, একাধিক রেডিও বাটন একত্রে গ্রুপ করা হয়, যাতে ব্যবহারকারী কেবল একটি অপশন নির্বাচন করতে পারে।
if (radioButton1.Checked)
{
MessageBox.Show("Option 1 selected");
}
ComboBox হলো একটি ড্রপডাউন তালিকা, যা ব্যবহারকারীকে একটি নির্দিষ্ট তালিকা থেকে একটি আইটেম নির্বাচন করার অনুমতি দেয়।
comboBox1.Items.Add("Option 1"); // আইটেম যোগ করা
string selectedOption = comboBox1.SelectedItem.ToString(); // নির্বাচিত আইটেম পড়া
Items.Add()
মেথড ব্যবহার করে নতুন আইটেম যোগ করা যায়।ListBox হলো এমন একটি কন্ট্রোল, যা একাধিক আইটেম প্রদর্শন করে এবং ব্যবহারকারী এক বা একাধিক আইটেম নির্বাচন করতে পারে।
listBox1.Items.Add("Item 1"); // আইটেম যোগ করা
string selectedItem = listBox1.SelectedItem.ToString(); // নির্বাচিত আইটেম পড়া
Items.Add()
ব্যবহার করা হয়।PictureBox ব্যবহার করে কোনো ছবি বা গ্রাফিক্স প্রদর্শন করা যায়।
pictureBox1.ImageLocation = "path_to_image.jpg";
PictureBoxSizeMode
ব্যবহার করে ছবির আকার পরিবর্তন করা যায়, যেমন StretchImage
, AutoSize
।ProgressBar কন্ট্রোলটি কোনো নির্দিষ্ট কাজের অগ্রগতি প্রদর্শন করতে ব্যবহৃত হয়, যেমন ডাউনলোড, ফাইল কপি ইত্যাদি।
progressBar1.Minimum = 0;
progressBar1.Maximum = 100;
progressBar1.Value = 50; // ৫০% অগ্রগতি প্রদর্শন করছে
Timer কন্ট্রোল নির্দিষ্ট সময় পরপর নির্দিষ্ট ইভেন্ট চালায়। এটি স্বয়ংক্রিয়ভাবে পুনরাবৃত্তি করতে পারে এবং বিশেষ করে মাল্টিটাস্কিং বা নির্দিষ্ট ইভেন্ট নির্দিষ্ট সময় পরপর চালানোর জন্য ব্যবহৃত হয়।
csharp
Copy code
private Timer timer1;
public Form1()
{
InitializeComponent();
timer1 = new Timer();
timer1.Interval = 1000; // ১ সেকেন্ড ইন্টারভাল
timer1.Tick += Timer1_Tick;
timer1.Start();
}
private void Timer1_Tick(object sender, EventArgs e)
{
Console.WriteLine("Timer ticked!");
}
Tick
ইভেন্ট ট্রিগার হবে তা নির্ধারণ করা হয়।Tick
ইভেন্টের মাধ্যমে কার্য সম্পন্ন করা হয়।কন্ট্রোল | ব্যবহার |
---|---|
Button | ক্লিক ইভেন্টের মাধ্যমে কার্য সম্পন্ন করা |
Label | টেক্সট প্রদর্শনের জন্য |
TextBox | ব্যবহারকারীর ইনপুট নেওয়ার জন্য |
CheckBox | অপশন নির্বাচন বা বাতিল করতে |
RadioButton | একাধিক অপশনের মধ্যে একটি নির্বাচন |
ComboBox | ড্রপডাউন তালিকা থেকে একটি আইটেম নির্বাচন |
ListBox | একাধিক আইটেম প্রদর্শন ও নির্বাচন করতে |
PictureBox | ছবি প্রদর্শন করতে |
ProgressBar | কাজের অগ্রগতি প্রদর্শন করতে |
Timer | নির্দিষ্ট সময় পরপর ইভেন্ট চালাতে |
উইন্ডোজ ফর্ম অ্যাপ্লিকেশন তৈরি করার সময় এই কন্ট্রোলগুলো ব্যবহার করে বিভিন্ন কার্যকরী ও ইন্টারেক্টিভ GUI তৈরি করা যায়। প্রতিটি কন্ট্রোলের নির্দিষ্ট ইভেন্ট ব্যবহার করে কাস্টমাইজড ফাংশনালিটি যোগ করা যায়, যা ব্যবহারকারীর অভিজ্ঞতা বাড়ায়।
সি# এ ইভেন্ট হ্যান্ডলিং একটি গুরুত্বপূর্ণ কনসেপ্ট, যা ইন্টারঅ্যাকটিভ প্রোগ্রাম তৈরি করতে ব্যবহৃত হয়। ইভেন্ট হ্যান্ডলিং এমন একটি প্রক্রিয়া, যেখানে নির্দিষ্ট কোনো ঘটনার (Event) প্রতিক্রিয়া জানাতে কোড লেখা হয়। উদাহরণস্বরূপ, একটি বাটন ক্লিক হলে, একটি টেক্সটবক্সে লেখা হলে, বা একটি মাউস মুভ হলে ইভেন্ট হ্যান্ডলিং করা হয়।
সি# এ ইভেন্ট হ্যান্ডলিং এর প্রধান উপাদানগুলো হলো:
ইভেন্ট সাবস্ক্রাইব করতে ডেলিগেট ব্যবহার করা হয় এবং এক্ষেত্রে EventHandler ডেলিগেটটি সবচেয়ে বেশি ব্যবহৃত হয়।
নিচে একটি বাটন ক্লিক ইভেন্ট হ্যান্ডলিং এর উদাহরণ দেওয়া হলো।
১. Visual Studio তে একটি Windows Forms App প্রজেক্ট তৈরি করুন। ২. ফর্মে একটি Button এবং একটি Label যোগ করুন। ৩. Button এর Text
প্রপার্টি "Click Me!" দিন এবং Label এর Text
প্রপার্টি ফাঁকা রাখুন।
Button এ ডাবল ক্লিক করলে একটি ইভেন্ট হ্যান্ডলার তৈরি হবে, যা বাটন ক্লিক করার সময় ট্রিগার হবে।
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "Button was clicked!";
}
button1_Click
হলো ইভেন্ট হ্যান্ডলার, যা তখনই ট্রিগার হবে যখন button1
ক্লিক করা হবে।label1.Text = "Button was clicked!";
এর মাধ্যমে লেবেল এ "Button was clicked!" মেসেজ প্রদর্শন করা হয়েছে।ইভেন্ট হ্যান্ডলিংয়ের জন্য সাধারণ কাঠামো হলো:
private void <Event_Handler_Name>(object sender, EventArgs e)
{
// ইভেন্ট হ্যান্ডল করার কোড
}
সি# এ নিজস্ব ইভেন্ট বা কাস্টম ইভেন্টও তৈরি করা যায়, যেখানে আপনি নিজের নির্দিষ্ট ইভেন্ট ডেফাইন করতে পারেন।
using System;
public class Publisher
{
// ডেলিগেট ডিক্লেয়ার করা
public delegate void MyEventHandler(object sender, EventArgs e);
// ইভেন্ট ডিক্লেয়ার করা
public event MyEventHandler MyEvent;
public void RaiseEvent()
{
if (MyEvent != null)
{
MyEvent(this, EventArgs.Empty);
}
}
}
public class Subscriber
{
public void OnEventOccurred(object sender, EventArgs e)
{
Console.WriteLine("Event occurred!");
}
}
public class Program
{
public static void Main()
{
Publisher pub = new Publisher();
Subscriber sub = new Subscriber();
// ইভেন্ট সাবস্ক্রাইব করা
pub.MyEvent += sub.OnEventOccurred;
// ইভেন্ট রেইজ করা
pub.RaiseEvent();
}
}
pub.MyEvent += sub.OnEventOccurred;
এর মাধ্যমে ইভেন্ট সাবস্ক্রাইব করা হয়েছে, অর্থাৎ OnEventOccurred
মেথডটি ইভেন্ট হ্যান্ডলার হিসেবে কাজ করবে।pub.RaiseEvent();
দ্বারা ইভেন্ট রেইজ করা হয়েছে এবং আউটপুটে "Event occurred!"
প্রদর্শিত হবে।সি# এ কিছু সাধারণ ইভেন্ট রয়েছে, যা প্রায়শই ব্যবহার করা হয়:
এই উদাহরণে আমরা একটি TextBox এবং একটি Label ব্যবহার করব। যখন TextBox এ কিছু লেখা হবে, তখনই Label এ সেই লেখা প্রদর্শিত হবে।
১. উইন্ডোজ ফর্মে একটি TextBox এবং একটি Label যোগ করুন। ২. Label এর Text
প্রপার্টি ফাঁকা রাখুন।
TextBox এ ডাবল ক্লিক করলে এর TextChanged ইভেন্ট তৈরি হবে এবং সেখানে নিচের কোডটি লিখুন:
private void textBox1_TextChanged(object sender, EventArgs e)
{
label1.Text = textBox1.Text;
}
textBox1_TextChanged
ইভেন্ট হ্যান্ডলারটি TextBox এর প্রতিটি পরিবর্তনের সাথে সাথে ট্রিগার হবে।সি# এ ইভেন্ট হ্যান্ডলিং এর মাধ্যমে ইন্টারঅ্যাকটিভ প্রোগ্রাম তৈরি করা সহজ হয়, যেখানে ব্যবহারকারীর অ্যাকশনের উপর ভিত্তি করে ইভেন্ট হ্যান্ডলার কাজ করে।
আরও দেখুন...